A primary consideration for the architecture of a virtual datacenter is how to best maximize the availability of the services provided by the virtual machines. Availability solutions are designed to improve the resiliency of local systems or entire sites and fall broadly into the categories of downtime avoidance and fault recovery. Fault recovery solutions include high availability and disaster recovery. High availability (HA) is an automated failover solution, typically within a single datacenter, that responds to unplanned outages and restarts virtual machines as appropriate. For example, if a virtual machine fails on one host computer, HA may respond by restarting the virtual machine on another host computer. Additionally, a virtual machine may be migrated from one host computer to another without first shutting down or suspending the virtual machine (“live migration”). Disaster recovery is a process for recovering all or a portion of a datacenter at a recovery site from replicated data. For example, a disaster recovery tool alerts an administrator of a possible site failure. The administrator may then provide input to the disaster recovery tool to initiate recovery of all or a portion of the inventory of virtual machines within the protected datacenter.
Recently, HA has been applied to clusters of devices that span datacenter sites. These “stretched clusters” offer the ability to balance workloads between two datacenters and enable migration of services between geographically close sites without sustaining an outage. A stretched cluster requires the same storage devices to be available within all locations of the cluster. As used herein, these storage devices are referred to as stretched storage devices. Stretched clusters add benefits to site-level availability and downtime avoidance, but introduce considerable complexity at the network and storage layers, as well as demanding rigorous operational management and change control. For example, disk writes are usually committed synchronously at both locations to ensure that data is consistent. Due to this complexity, the cost of stretched storage devices can be prohibitive. For example, vendors and customers may find it impractical to test features of stretched storage or develop software related to stretched storage due to the large expense of purchasing stretched storage devices.